Dynamic location based digital element

ABSTRACT

A digital element located within a region near a device is identified. The digital element is located at a dynamically updated location. It is determined that the digital element is to be rendered. A representation of the digital element is generated in a rendered view of at least a portion of the region. Content of the digital element is provided upon receiving an indication that the digital element has been selected.

CROSS REFERENCE TO OTHER APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/426,164 entitled DYNAMIC LOCATION BASED DIGITAL ELEMENT filedNov. 23, 2016 which is incorporated herein by reference for allpurposes.

BACKGROUND OF THE INVENTION

The proliferation of digital activity and record keeping, both socialand non-social, has drastically increased one's reliance on mobiledevices to manage social interaction and personal record keeping. Forexample, it is common for a user to manage appointments, photos,personal records, and multiple forms of communication from a singlesmartphone device. As new features are added to mobile devices, newdigital interaction patterns are developed. For example, improvements inlocation positioning technologies have led to the development of routeguidance and location-based searching capabilities on mobile devices. Ascomputing and other features of mobile devices continually improve, newdigital interaction and record keeping capabilities can be developed totake advantage of the device capabilities.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a block diagram illustrating an embodiment of a system forrendering a digital element.

FIG. 2 is a diagram illustrating an embodiment of a rendered visualrepresentation of a digital element.

FIG. 3 is a flowchart illustrating an embodiment of a process forplacing a digital element.

FIGS. 4A-4E are diagrams illustrating an example user interface used toplace a digital element.

FIG. 5 is a flowchart illustrating an embodiment of a process forretrieving a digital element.

FIG. 6 is a flowchart illustrating an embodiment of a process forrendering a digital element.

FIG. 7 is a flowchart illustrating an embodiment of a process forupdating a target location of a digital element.

FIG. 8 is a flowchart illustrating an embodiment of a process fordetermining a next rendering location of a digital element.

FIG. 9 is a flowchart illustrating an embodiment of a process forbiasing a rendering coordinate of a digital element.

FIG. 10 is a flowchart illustrating an embodiment of a process forretrieving a rendered digital element.

FIGS. 11A-11C are diagrams illustrating an example user interface usedto retrieve a digital element.

FIGS. 12A-12D are diagrams illustrating example user interfaces used tointeract with digital elements representing users.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Rendering a digital element associated with a physical region isdisclosed. For example, a digital element such as a message, a record, adigital file, a user profile, a coupon, a gift card credit,cryptocurrencies (and related), etc. is placed by a user for a specificgeographical location. The specific geographic location may be fixed(e.g., placed at a specific fixed location coordinate) or may be placedat a location that can dynamically change (e.g., location of a devicethat can be moved to different locations) in another embodiment. Thedigital element may be retrieved by one or more users by visiting thegeographical location of the digital element and using a computingdevice application to retrieve the digital element. In some embodiments,an augmented reality world view is displayed using the computing viewingdevice and a user desiring to retrieve the digital element may view avisual representation of the digital element at the physical locationwhere the digital element was placed. For example, the user may explorea physical location using a mobile device application as a viewer. Ifany digital element of interest exists in the physical location shown inthe viewer, a visual graphic (e.g., icon) representing the digitalelement is superimposed on the view of the physical location to createan augmented reality view of the digital element being located at thephysical location. In some embodiments, the representation of thedigital element is associated with an audio, tactile and/or othersomatosensory feedback. For example, an audio, tactile and/or othersomatosensory feedback may be provided via the device to indicate thedigital element. If a user desires to obtain the digital element, theuser may indicate that the user desires to obtain the digital elementshown in the viewer of the mobile device application.

Improving the perception of an augmented reality object is disclosed.For example, when a digital object is rendered in an augmented realityenvironment (e.g., captured using a camera of a mobile device), thedigital object placed at a geographical location coordinate may seem tomove erratically in the augmented reality environment due to errors of ageographical location sensor of the mobile device. This erratic movementmay seem jarring to a user and by limiting movement of the digitalobject within the augmented reality environment, the user may experiencean enhanced user experience. In some embodiments, a new location of anobserving platform is received. For example, a new location coordinateis received from a location service (e.g., determined using GPS) of amobile device used to view an augmented reality environment. In someembodiments, a new relative position of an augmented reality object on adisplay associated with the observing platform is calculated. Forexample, a new location of a viewing device is detected (e.g., eitherdue to the mobile device moving and/or due to errors of a locationdetector) and a new relative position of the augmented reality objectwith respect to the mobile device is calculated. In some embodiments,the display is updated using a filtered new relative position of theaugmented reality object in a manner that reduces rate of change inmotion of the augmented reality object on the display. For example, theaugmented reality object is only allowed to move at a predeterminedmaximum rate. In another example, one or more previously received newlocations of the viewing device are averaged with the new location todetermine an averaged new location that is utilized to determine thefiltered new relative position.

Rendering a digital element is disclosed. For example, an augmentedreality object is rendered within an augmented reality world environmentdisplayed on a screen (or projected into the eye). In some embodiments,a digital element to render is selected. For example, it is determinedthat a location and an orientation of a viewing device (e.g., mobiledevice) meet a criteria to render the digital element on a screen. Aheading value of the digital element is determined based at least inpart on a determined geographical location of an observing platform. Forexample, a compass directional heading from the geographical location ofthe viewing platform to the geographical location of the digital elementis determined. A captured image associated with the geographicallocation of the device is obtained. For example, an image captured by acamera at the geographical location is obtained to be displayed as theaugmented reality world environment. The digital element is rendered onthe captured image at least in part by using the heading value. Forexample, the captured image includes an image of a range of directionsaround a center directional heading and a visual representation of thedigital element is rendered over the captured image at the heading valuethat corresponds to its position in the range of directional headingscaptured by the image.

Rendering a digital element is disclosed. In some embodiments, anorientation of an observing platform is determined. For example, theobserving platform is utilized to explore the augmented reality worldthat includes digital objects that are to be obtained. By orienting theobserving platform in different directions, different portions of theaugmented reality world environment may be displayed and explored on adisplay. It is determined whether a current rendering location of adigital element rendered on a captured image associated with ageographical location of the device meets a criteria. For example, it isdetermined whether a user is attempting to capture the digital element.In the event the current rendering location meets the criteria, a secondrendering location of the digital element is biased using the detectedorientation of the device. For example, a next rendering location of thedigital element is biased to stay near its current rendering locationrather than move to an updated rendering location.

FIG. 1 is a block diagram illustrating an embodiment of a system forrendering a digital element. Capture device 102 is connected to server106 via network 104. Viewing device 102 may include one or more of thefollowing: a smartphone, a tablet computer, a mobile device, a mediaplayer, a virtual reality display device, a head-mounted display, anoptical head-mounted display, a wearable device, a wearable computer, alaptop computer, a desktop computer, and any other computing device.Device 102 includes application 108, sensor 110, and storage 112. Insome embodiments, device 102 is used by a user to place and/or retrievea digital element. Application 108 may include a software applicationthat can be utilized to place, retrieve, and/or open a digital element.In some embodiments, application 108 includes a web browser. In someembodiments, application 108 includes a native application (e.g., AppleiOS application or Google Android application) for placing and/orretrieving a digital element. Sensor 110 may include one or moresensors: a location sensor, a Global Positioning System (GPS) sensor, awireless local area (Wifi) network sensor, accelerometer, a gyroscopesensor, a device orientation sensor, a light sensor, a camera, aproximity sensor, a touch input sensor, and a microphone. In someembodiments, information from the sensor is used to place, retrieve,and/or display a digital element. For example, a current location andorientation of device 102 is obtained from sensor 110 and thisinformation is used to determine which digital element to render on ascreen of device 102.

Digital element reference location device 120 is connected to server 106via network 104. In an example, a digital element is to be located at alocation relative to a dynamically updated reference location (e.g., thedigital element representative of a user is to be located at a locationof a tracking device of the user) of digital element reference locationdevice 120 and device 120 provides to server 106 a current location ofdevice 120 that is utilized to update a location of its correspondingdigital element.

For example, as reference location device 120 is moved in the physicalworld, reference location device 120 provides to server 106 via network104 its location. This location information is then used to update thelocations of one or more corresponding digital elements with locationsthat are linked to the location of reference location device 120.Examples of reference location device 120 include a mobile device, acomputer device, a vehicle, a tag device, a beacon device, a locationtracking device, a smart watch, a digital collar, and any radio signalemitting device. In some embodiments, location information of referencelocation device 120 is received/detected by an external device (e.g.,hub/beacon signal receiving device) that provides the locationinformation to server 106 via network 104. Digital element referencelocation device 120 includes one or more sensors and/or transmitters.Examples of these sensors and transmitters include a Global PositioningSystem (GPS) sensor, a wireless local area (Wifi) networksensor/transmitter, a personal area communication (e.g., Bluetooth)sensor/transmitter, a cellular signal radio/sensor, accelerometer, agyroscope sensor, a device orientation sensor, a light sensor, a camera,a proximity sensor, and/or a microphone that can be utilized to detect alocation of device 120. A location of device 120 may be determined basedon information detected by device 120 (e.g., detected GPS location)and/or based on a transmitted signal/information collected by sensors onother devices (e.g., based on signal detected by external beacons/hubs).For example, device 120 emits a signal that can be detected by otherdevices to determine (e.g., based on triangulation of signal strength) alocation of device 120.

The digital element corresponding to device 120 may be specified to belocated at a fixed relative distance offset from a reference location(e.g., reference location of device 120) in a specified direction awayfrom the reference location. In some embodiments, the digital element isto be located at the longitude and latitude coordinate of the referencelocation of the reference location device but a vertical height locationof the digital element has been set to be a fixed value (e.g., fixedheight value or fixed relative height angle relative to a viewingplatform). In some embodiments, a plurality of digital elements areplaced with respect to a reference location of device 120. For example,digital elements are placed with respect to different offsets from thereference location of device 120. In various embodiments, there existsmany different reference locations of devices for various differentdigital elements associated with dynamic locations.

In some embodiments, storage 112 stores configuration information,preferences, content cached information, a list/database, and/or otherinformation associated with one or more digital elements. For example,storage 112 includes user configuration information and a cacheddatabase of digital elements located near device 102. In someembodiments, device 102 provides an augmented reality view displayed ona screen (e.g., a touch input display) of device 102. For example, anenvironment such as an image captured by a camera (e.g., sensor 110) ofdevice 102 is modified to include a visual, sonic (e.g., audio), and/orsomatic (e.g., tactile) representation of a digital element placed at aphysical location depicted in the captured image.

In some embodiments, the location where the digital element is placed onthe captured image is determined using a detected location of device102. For example, a geographical location of device 102 is determined atleast in part by using sensor 110 and the relative location of thedigital element with respect to the device is calculated. Using thecalculated relative location, the digital element is rendered on anaugmented reality view displayed on a screen of device 102. For example,the digital element is associated with a geographical locationcoordinate and a heading (e.g., compass degree), and a distance betweenthe detected location of device 102 and the location coordinate of thedigital object is calculated. Using the heading and distance, thedigital object may be rendered on a display of device 102 when a fieldof view of an augmented reality view displayed on the display includesthe heading of the digital object (e.g., size of digital object may bescaled using the distance).

The detected location of device 102 may be unstable and change over timedue to errors and limitations of using sensor 110 to detect thelocation. When the detected location is fluctuating even though thedevice is stationary, a digital element may seem to move arounderratically in the augmented reality environment due to the changingrelative location of the device with respect to a geographical locationcoordinate where the digital object is located. In order to stabilizethe appearance of the digital object's perceived location yet allow forintended movement of the device to be accurately registered, a detectedlocation of device 102 may be filtered to reduce the relative rate ofchange in motion of the digital object in the augmented realityenvironment. For example, the digital object is only allowed to move atmost at a maximum predetermined rate. In another example, one or moreprevious consecutively detected locations of device 102 are averagedwith the new location to determine an averaged new location that isutilized to determine a filtered new relative position.

A user may navigate the augmented reality view by moving device 102(e.g., augmented reality observing platform) in the physical world and acorresponding view of the physical world captured by the camera ofdevice 102 is augmented with visual, audio, tactile (e.g., hapticfeedback) and other somatosensory representations of digital elements atappropriate locations and displayed on a screen of device 102. In someembodiments, rather than using images from a camera of device 102 todisplay the augmented reality world, a previously captured image and/ora virtual image may be utilized. In some embodiments, a user mayretrieve/capture a digital element by performing a gesture with device102 at an appropriate physical location by performing an input movement(e.g., touch detected on a touch screen of device 102 or a specificphysical movement of device 102 detected by sensor 110).

In some embodiments, because the rendered location of the digitalelement may be unstable and change over time due to errors andlimitations of using sensor 110 to detect the device location andvariations in a dynamic location of the digital element (e.g., due toerrors and limitations of detecting a reference location of referencelocation device 120 corresponding to the digital element), a digitalobject rendered on an augmented reality view displayed on a display ofdevice 102 may be biased to remain on the display. For example, if acalculated heading of the digital object meets a criteria (e.g., headingof the digital object is within a preset range of a center heading of afield of view of the augmented reality view), the rendered location(e.g., heading) of the digital object is biased using a center headingof a field of view of the augmented reality view displayed on device102.

In some embodiments, a user may retrieve/capture a digital element byhovering over the digital object for a preset amount of time. Forexample a center of a display of device 102 displays a target selectionarea (e.g., cross hairs) and when the digital object is aimed in thetarget selection area for at least a predetermined amount of time, thedigital object is retrieved/captured. In some embodiments, because therendered location of the digital element may be unstable and change overtime due to errors and limitations of using sensor 110 to detect thedevice location, it may be difficult to aim and maintain the digitalobject within the target selection area. In some embodiments, a digitalobject rendered on an augmented reality view displayed on a display ofdevice 102 may be biased to remain within a target selection area if thedigital object is placed within the target area. For example, if acalculated heading of the digital object meets a criteria (e.g., headingof the digital object is within a preset range of a center heading of atarget area of a field of view of the augmented reality view displayedon a screen of a viewing device), the rendered location (e.g., heading)of the digital object is biased using a heading pointed by the viewdevice (e.g., heading pointed by orientation of device 102).

In some embodiments, a user may retrieve/capture a digital element bytouching and/or holding (e.g., for a predetermined amount of time) thedigital object on a touch input screen of the device. For example, auser may touch a rendered digital object on a display of device 102 toretrieve/capture the digital object. In some embodiments, because therendered location of the digital element may be unstable and change overtime due to errors and limitations of using sensor 110 to detect thedevice location, it may be difficult to aim and touch a fast movingdigital object. In some embodiments, a digital object rendered on anaugmented reality view displayed on a display of device 102 may beprevented from moving away from the display if the digital object iscurrently displayed on the display.

Server 106 may include a web server, a virtual server, and/or any otherserver that can provide information to device 102. In some embodiments,device 102 obtains information from server 106 via network 104. In someembodiments, application 108 communicates with server 106 to obtain oneor more digital elements located near a location detected by sensor 110.For example, a location detected by sensor 110 is provided to server 106and server 106 provides a list of digital elements (e.g., obtained fromstorage 114) that are located near the location and allowed to beaccessed by a user of device 102. A location of a digital element may bea dynamically updated location based on a current location of areference location device (e.g., reference location device 120) providedto server 106 by the reference location device 120. When a new referencelocation of a reference location device is received by server 106,server 106 updates the locations of one or more digital elements withdynamic locations based on the received reference location. In someembodiments, device 102 is provided the updated locations of any digitalelement desired by device 102 (e.g., updated locations of any digitalelement near current location of device 102). The updated location ofdigital elements may be pushed to device 102 and/or provided when device102 requests an update of desired digital elements.

Device 102 renders a visual representation of the digital elements atappropriate locations within an augmented reality world view. When auser of device 102 selects a specific digital element, device 102requests the specific digital element and the requested digital elementis provided by server 106 from storage 114 and/or from a cached or localstorage such as storage 112. Storage 114 is connected to server 106.Storage 114 may store user account information, digital elements,metadata associated with digital elements, and/or any other informationassociated with digital elements. For example, storage 114 includes adatabase repository of digital elements. In some embodiments, when adigital element is placed at a physical location using device 102, thedigital element is provided to server 106 for storage in storage 114. Insome embodiments, one or more placed digital elements may be private(e.g., only stored in storage 112) to device 102 and not provided toserver 106 for storage. In some embodiments, storage 114 is directlyconnected to network 104 and server 106 may access storage 114 vianetwork 104.

Examples of network 104 include one or more of the following: a director indirect physical communication connection, mobile communicationnetwork, Internet, intranet, Local Area Network, Wide Area Network,Storage Area Network, and any other form of connecting two or moresystems, components, or storage devices together. In variousembodiments, the components shown in FIG. 1 may exist in variouscombinations of hardware machines. One or more of the components shownin FIG. 1 may be included in the same machine. Other communication pathsmay exist and the example of FIG. 1 has been simplified to illustratethe example clearly. Although single instances of components have beenshown to simplify the diagram, additional instances of any of thecomponents shown in FIG. 1 may exist. For example, multiple devices maybe communicating with multiple servers that may be utilizing a clusterof server storage. Additional applications may be hosted by device 102.Components not shown in FIG. 1 may also exist.

FIG. 2 is a diagram illustrating an embodiment of a rendered visualrepresentation of a digital element. Device 202 is a smartphone device.In some embodiments, device 202 is included in device 102 of FIG. 1.Device 202 includes screen 204 showing an augmented reality view ofenvironment 200. Specifically, screen 204 is showing a train stationplatform and the view of the train station platform has been augmentedwith a display of a visual representation of digital element 206 locatedat a physical location of the train station platform. A user may havediscovered digital element 206 by moving device 202 around environment200. As device 202 is moved around environment 200, display 204 displaysa view of environment 200. The view of environment 200 may have beenobtained from a camera of device 202 and/or a previouslycaptured/generated visual image. Digital element 206 was placed at thephysical location by a user. The same or different user may obtaindigital element 206 by visiting the physical location and finding thedevice through a display of a device, as shown in FIG. 2. Digitalelement 206 is represented by a graphical “kiss” icon.

In order to obtain the digital element 206 displayed on screen 204, auser may perform a gesture with device 202. For example, a user may berequired to swing device 202 in a semicircular motion to act outcapturing digital element 206 displayed on screen 204. In someembodiments, when digital element 206 is obtained, a message associatedwith digital element 206 may be obtained. For example, digital element206 represents a text message left for a user of device 202 by anotheruser that has previously visited the physical location of digitalelement 206. In some embodiments, although a visual representation of adigital element can be seen on a display viewer screen, the digitalelement may not be able to be obtained until the device is closer to alocation of the digital element. For example, as the device is movedcloser to the location of the digital element, a visual representationof the digital element becomes larger. In some embodiments, when thedigital element is able to be obtained, an indication is provided. Forexample, the visual representation may blink, move, wiggle, glow,pulsate, and/or change color to indicate that the element can beobtained. In some embodiments, device 202 may vibrate and/or emit asound to indicate that the element can be obtained.

FIG. 3 is a flowchart illustrating an embodiment of a process forplacing a digital element. The process of FIG. 3 may be implemented ondevice 102 and/or server 106 of FIG. 1. At 302, a selection of a digitalelement is received. In some embodiments, receiving the selection of thedigital element includes receiving an indication of a digital element tobe placed. Examples of the digital element include one or more of thefollowing: a text, a message, an image, an audio, a video, a route, auser profile, contact information, a location identifier, a link, anicon, a coupon, a key, a geographical reference, a file, a promotion, anadvertisement, a monetary object, and an interactive element. Forexample, a user may select to leave a message for another user. Inanother example, a user may select to leave a personal record toremember about a particular location. In another example, a user mayselect to leave a clue and/or a digital key that can be used todetermine/access content in a scavenger hunt. In another example, a usermay select to leave a coupon that can be redeemed to obtain a specifieditem from a merchant. In another example, a user may select to leave aninteractive element that guides a receiver of the digital element to oneor more locations (e.g., tour, on-screen guidance, an arrow, on-screenbird that a user can follow by physically moving to a location on aflight path of the on-screen bird, etc.). In various embodiments, adigital element may be utilized to provide one or more of the following:a guided tour, a game, a gift, record a memory, record an event at aphysical location, a coupon, a promotion, an advertisement, an event, aneducational experience, an exercise, a checkpoint, a waypoint, and asocial experience.

In some embodiments, a user may select a type of digital content from alist of possible digital elements to place. In some embodiments, a usermay generate a new type of digital element to place. In someembodiments, a type of digital element that can be left is determinedbased on one or more factors. For example, only certain type(s) ofdigital content may be placed at a particular location. Examples of thefactors used to determine the type of digital content that can be leftinclude one or more of the following: information obtained from one ormore sensors of a user device (e.g., information from sensor 110 of FIG.1), a status associated with a physical location, a time value, atemperature, a location where the digital content is to be placed, auser preference, a user account setting, a user privilege, a userstatus, information associated with a user placing the digital element,information associated with an intended recipient of the digitalelement, other digital elements at or near the physical location,information obtained from an Internet source, and information obtainedfrom a server (e.g., information from server 106 of FIG. 1).

At 304, a configuration of the digital element is received. In someembodiments, the configuration includes a specification of a visualrepresentation of the digital element to be placed. For example, anicon, a color, and a size to be used to represent the digital elementmay be received. In some embodiments, the configuration includes aspecification of one or more configuration parameters specific to thetype of digital content to be placed. For example, a text content of amessage to be left is received. In another example, a file to be left isreceived. In another example, a specification of an item, a quantity,and a merchant of a redeemable coupon are received. In some embodiments,the configuration includes a specification of which user(s) may retrievethe digital content to be placed. In some embodiments, a user mayspecify that the digital content can be retrieved by everyone (i.e.,public), only by the user placing the digital content (i.e., private),only by members belonging to one or more specified groups, or only byspecified users. In some embodiments, the configuration includes one ormore time parameters associated with the digital element. For example, auser may provide a time period when the digital content can beretrieved. In some embodiments, the configuration includes aspecification of a restriction on the number of times the digitalelement can be retrieved. In some embodiments, the configurationincludes a specification of how to notify potential receiver(s) of thedigital element to be placed. For example, a user is able to send anotification (e.g., email, instant message, SMS, Twitter Tweet, Facebookposting, etc.) of the existence of the digital element to one or moreusers and configure whether an alert (e.g., vibration, sound, visualalert, other somatosensory alert, etc.) will be provided when a user whois able to retrieve the digital element is near the physical location ofthe digital element.

At 306, a location associated with the digital element is determined. Insome embodiments, the location is at least in part determined to be acurrent physical location of a device being used to place the digitalelement. In some embodiments, at least a portion of the location of thedigital element to be placed is automatically determined using one ormore of the following associated with the device being used to place thedigital element: GPS data, an Internet Protocol (IP) address, a Wifipositioning data, a cellular signal positioning data, a captured image(e.g., machine vision utilizing visual pattern matching to determinelocation), a captured audio, and a user provided location identifier. Insome embodiments, the digital element is only allowed to be placed atthe physical location of the device being used to place the digitalelement. In some embodiments, the digital element may be placed within ageographical boundary associated with the device being used to place thedigital element. For example, the digital element may be placed within aspecified distance from the location of the device. In some embodiments,the digital element may be placed in any location regardless of thedevice location. In some embodiments, the digital element may be placedat a location specified by a user. For example, a user may select alocation from a map where the digital element is to be placed. In someembodiments, a user may specify a location within an environment viewdisplayed on the device. For example, a user may select a location in animage captured by a camera on the device. In some embodiments, thelocation of the digital element includes a location point. In someembodiments, the location of the digital element includes a region. Insome embodiments, the location associated with digital element isdynamically modified. For example, a region associated with the digitalelement becomes smaller and/or larger based at least in part on a timevalue, an elapsed time, a number of times the digital element has beenobtained, and/or any other changing factor. In some embodiments, thelocation of the digital element includes a specification of one or moreof the following: a latitude, a longitude, an elevation, a region shape,and a region.

In some embodiments, determining the location associated with thedigital element includes receiving an identification that the digitalelement is to be associated with a predefined location of a recipient ofthe digital element. In some embodiments, a first user may predefine(e.g., using a map, GPS, etc.) one or more locations for the first userand another user indicates to place the digital element at one or morepredefined locations of the first user. For example, a sender userplaces a message/photo for a recipient user at a predefined homelocation of the recipient user. In some embodiments, a user placing thedigital element does not know the actual location of the predefinedlocation of the recipient. For example, a sender indicates to place thedigital element at a predefined location of the recipient based on atext description of the predefined location without having access to theexact location of the predefined location. In some embodiments, a senderindicates to send the digital element to the recipient and the digitalelement is automatically placed at a predetermined default location forthe recipient. In some embodiments, a sender indicates which predefinedlocation among a plurality of predefined locations to place the digitalelement.

In some embodiments, the location associated with the digital element isa location at and/or relative to a reference location of an object. Forexample, the digital element is placed at a relative location relativeto the location of another digital object. In some embodiments, thelocation associated with the digital element is a location relative to adynamic location that may change. For example, a user indicates to placethe digital object at a location relative to a dynamic current locationof an object/device (e.g., relative to current location of a referencedevice) and the current location of the reference device (e.g., device120 of FIG. 1) may change as the object/device is moved. When a changein the location of the reference object/device is received/detected, thecorresponding location of the digital element is updated. For example, aserver receives location updates of a reference location device (e.g.,data indicating current location of the device) periodically and/ordynamically when the location of the reference location device ischanged. In some embodiments, a specified location relative to anotherdynamic reference location may include a distance, a direction, and/or alocation coordinate offset relative to the dynamic reference location.For example, when a new dynamic reference location is detected, thecorresponding location of a digital element is calculated by applyingthe offset to the reference location and the location of the digitalelement updated.

In some embodiments, the location associated with the digital element isthe dynamic reference location. For example, the digital element is tobe located at a location of a physical object (e.g., located at mobiledevice of a recipient) that can be dynamically moved in the physicalworld. The dynamic reference location may be dynamically determinedbased on a GPS, a beacon, Wifi, local area network signals, and/orcellular signals. In another example, the dynamic location may bedynamically specified/modified by a user. For example, the dynamiclocation is a location specified by a user rather than an automaticallydetermined location. In some embodiments, a default relative location isutilized. For example, a user specifies to associate the digital elementwith a device and the digital element is placed at a default relativelocation relative to the dynamic current location of the device.

At 308, the digital element is finalized for placement. In someembodiments, finalizing the digital element includes associating theprovided digital element with the determined location to enable one ormore users to retrieve the digital element from the location. In someembodiments, finalizing the digital element for placement includesstoring the digital element and/or metadata associated with the digitalelement in a storage such as storage 112 and/or 114 of FIG. 1. In someembodiments, finalizing the digital element for placement includesreceiving at a server from a user device the digital element and/ormetadata associated with the digital element. In some embodiments,finalizing the digital element for placement includes associating thedigital element with one or more user accounts. For example, the digitalelement is associated with an identifier that identifies a user accountof a user that created the digital element and one or more otheridentifiers identify user account(s) of one or more other users that areable to access the digital element.

FIGS. 4A-4E are diagrams illustrating an example user interface used toplace a digital element. In some embodiments, FIGS. 4A-4E illustrate atleast a portion of the process of FIG. 3.

FIG. 4A shows a user holding device 402 that is running an applicationthat can be used to place a digital element. In some embodiments, device402 is device 102 of FIG. 1. Screen 404 is displaying a list of types ofdigital elements that can be placed.

FIG. 4B shows screen 406 that is displaying a configuration screen aftera “KISS” type of digital element has been selected by a user on screen404 of FIG. 4A. The “KISS” type of digital element may be configured tobe sent to one or more selected users by selecting the “Send to friend”option on screen 406. The “KISS” type of digital element may beconfigured to be publicly available to any user by selecting the“Broadcast publicly” option on screen 406. The “KISS” type of digitalelement may be personalized by selecting the “Personalise” option onscreen 406.

FIG. 4C shows screen 408 that is displaying personalization optionsafter the “Personalise” option was selected on screen 406 of FIG. 4B.The “KISS” digital element may be personalized by adding a personal textmessage (e.g., by selecting the “Add message” option), changing thecolor of the visual representation of the digital element (e.g., byselecting the “Colour” option), changing the shading pattern of thevisual representation of the digital element (e.g., by selecting the“Pattern” option), and a personal photograph may be attached to the“KISS” digital element (e.g., by selecting the “Attach photo” option).

After the digital element has been configured and personalized, FIG. 4Dshows screen 410 that is displaying options to determine a physicallocation associated with the digital element. By selecting the “Here”option, a geographical location of the device may be automaticallydetermined (e.g., using GPS, Wifi, and/or Cellular signal location data)and associated with the digital element. By selecting the “Use googlemaps” option, a geographical location of the device may be provided by auser by selecting a location on a displayed map.

In some embodiments, a dynamic location option it provided. For example,an option “Follow this device” is provided and the location of thedigital element is set to be dynamically updated to be based on thedynamically updated current location of a reference device (e.g., device402). In one example, the digital element is set to be located at acurrent latitude and longitude of the reference device but itsheight/altitude component is set at a fixed distance (e.g., three feetabove) relative to a current height/altitude of a recipient deviceutilized to view/obtain/capture the digital element. If the referencedevice is not the device utilized to specify the dynamic location of thedigital element, an identifier of the reference device is able to bespecified by the user placing the digital element.

FIG. 4E shows screen 412 confirming the placement of the digital elementafter the location of the digital element has been determined. Screen412 confirms that the “KISS” digital element has been placed at “BakerStreet Station” by user “Sarah Roberts.”

FIG. 5 is a flowchart illustrating an embodiment of a process forretrieving a digital element. In some embodiments, at least a portion ofFIG. 5 is used to retrieve a digital element left using at least aportion of the process of FIG. 3. The process of FIG. 5 may beimplemented on device 102 of FIG. 1.

At 502, a user is authenticated. In some embodiments, authenticating theuser includes verifying a user account identifier and a password. Forexample, a user executes application 108 and provides a user identifierand a password to log into one or more services of server 106 of FIG. 1.In some embodiments, authenticating the user includes sending a useraccount identifier and password to a server and receiving verificationthat the user account has been authenticated. In some embodiments, theuser account is associated with one or more preferences/configurationsand the preferences/configurations associated with the authenticateduser are obtained from a storage such as storage 112 and/or storage 114of FIG. 1. For example, the user account is associated with a userconfiguration of desired digital elements (e.g., desired digitalelements to be notified when physically near the digital elements),allowed digital elements (e.g., digital elements allowed to be obtainedby the user of the user account), and/or one or more other associatedusers (e.g., user has access to one or more digital elements placed byfriend users or other allowed users). In some embodiments, a user maysubscribe to digital elements of another user. For example, a celebrityuser may make the celebrity user's digital element public and allow asubscribing user access to the celebrity user's digital elements and isnotified of the celebrity user's digital elements.

At 504, a location associated with the user is determined. In someembodiments, determining the location includes determining a physicallocation of a device that is to be used to obtain a digital element. Forexample, determining the physical location includes determining thephysical location of device 102 of FIG. 1. In some embodiments,determining the location includes automatically determining a locationusing one or more of the following: GPS data, an IP address, a Wi-Fipositioning data, a cellular signal positioning data, a captured image(e.g., machine vision utilizing visual pattern matching to determinelocation), a captured audio, and a user provided location identifier. Insome embodiments, a user may specify a location identifier. For example,a user may select a location from a map. In some embodiments, thelocation cannot be specified by a user and must be determined usingdetected information. In some embodiments, determining the locationincludes at least in part detecting a location and at least in partreceiving a user provided location identification. For example, ageneral location is detected using one or more location sensors and auser is provided a plurality of possible locations within the generallocation for selection. In some embodiments, determining the locationincludes using information from sensor 110 of FIG. 1. In someembodiments, determining the location includes utilizing a locationservice provided by an operating system. For example, an operatingsystem of device 102 of FIG. 1 provides a location identifier determinedusing one or more sensors of device 102. The provided location may bealready processed to minimize errors of the location. For example, theoperating system may provide a location that has been already processedusing dead reckoning. Despite this and other processing, the providedlocation may be unstable and fluctuate due to detection errors. In someembodiments, determining the location associated with the user includesaveraging a predetermined number of last consecutively detected/receivedlocation identifiers (e.g., average last five location coordinatesreceived at a periodic interval from a location service).

At 506, based on the determined location and user configuration,matching digital elements are requested. In some embodiments, using theuser configuration associated with the authenticated user in 502 andlocation determined in 504, a request is made to obtain a list ofdigital elements that match a desired criteria. For example, the userconfiguration includes an identification of one or more types, users,distance values, and/or other filters/preferences associated withdigital elements desired by a user. In one example, digital elementsthat have been specifically sent to a recipient user and associated withthe determined location are requested. In another example, digitalelements placed by one or more users that are socially connected to arecipient user and associated with the determined location arerequested. In another example, digital elements placed by one or moreusers that are followed/subscribed by a recipient user and associatedwith the determined location are requested. The determined location maybe used to identify relevant digital elements that are near thedetermined location (e.g., within a predetermined, user configured,and/or dynamically determined distance from the determined location).The location of a digital element may be a dynamically updated locationand the dynamically updated location is utilized in determining whetherthe digital element is near the determined location. In someembodiments, requesting the matching digital elements includes sendingthe request to a server such as server 106 of FIG. 1. In someembodiments, requesting the matching digital elements includes obtaininga list of matching digital elements from a storage such as storage 112and/or storage 114 of FIG. 1. In some embodiments, matching digitalelements are requested based on the determined location and a useridentifier. For example, any digital element within a predetermined,configured, and/or dynamically determined distance from the determinedlocation that is allowed to be received by a user of the user identifieris requested.

At 508, an identification of one or more elements is received. In someembodiments, receiving the identification includes receiving a list ofone or more elements that match a criteria. In some embodiments, theidentification identifies digital elements that match informationprovided in 506. For example, the identification includes a list ofobtainable digital elements that are located within a predetermined,configurable, and/or dynamically determined distance from the providedlocation. In some embodiments, the identification only identifiesdigital elements that are allowed to be obtained by an identified user.For example, a provided user identifier is used to obtain user accountinformation and the user account information (e.g., user preferences,associated users, other/previous digital elements placed/obtained by theuser, etc.) is used (e.g., by a server) to determine a list of digitalelements allowed to be accessed by the user. In some embodiments, theidentification identifies digital elements based at least in part on astatus associated with a determined location and/or a digital element.For example, one or more elements may be obtained a predetermined amountof times and an element may have reached the predetermined limit. Inanother example, one or more elements may only be obtained at aspecified time and the element(s) are identified in the identificationif a current time matches the specified time. In another example, one ormore elements may only be obtained at a specified weather condition(e.g., specified temperature, precipitation, etc.) and the element(s)are identified in the identification if a current weather of thedetermined location matches the specified weather condition.

In some embodiments, one or more elements may only be obtained by one ormore allowed users and the element(s) are identified in theidentification if a user is included in the allowed users. In someembodiments, the identification is received from a storage such asstorage 112 and/or storage 114 of FIG. 1. In some embodiments, theidentification is received from a server such as server 106 of FIG. 1.In some embodiments, the identification includes content of digitalelement(s) identified by the identification. In some embodiments, theidentification includes metadata associated with the digital element(s)identified by the identification. Examples of the metadata includeinformation about a digital element, a rule defining how and/or when adigital element can be obtained (e.g., time restriction associated witha digital element), information about a visual representation of adigital element (e.g., image/animation to be rendered to display avisual representation of a digital element in an augmented realityview), information about a sonic representation of a digital element(e.g., sound to be rendered to indicate a representation of a digitalelement in an augmented reality world), information about a somaticrepresentation of a digital element (e.g., tactile/haptic feedback to berendered to indicate a representation of a digital element in anaugmented reality world), and information about a notificationassociated with a digital element (e.g., vibration, sound notification,or other somatosensory notification, if any, when near a digitalelement). In some embodiments, one or more digital elements identifiedin the received identification are selected using one or more userpreferences. For example, a user may be only interested in a specifiedtype of digital element. In another example, a user may be onlyinterested in digital element(s) placed by a specific user. In someembodiments, the identification of one or more elements is periodicallyand/or dynamically received. For example, as a physical location of adevice receiving the identification changes and/or as digital elementsare updated, updated identification is received as updated and/or at aperiodic interval.

In some embodiments, one or more digital elements identified in theidentification are associated with a notification. For example, a userof a device may not be actively paying attention to the device and/or anapplication such as application 108 of FIG. 1 that can be used to obtaindigital elements. When the device is physically located within adistance (e.g., a predetermined, configurable, and/or dynamicallydetermined distance) from a location where a digital element identifiedin the identification is placed, a notification may be provided usingthe device to alert a user that a digital element of interest is locatednear the device. Examples of the notification include audio, tactile(e.g., vibration), visual, and other somatosensory notifications. Insome embodiments, at least a portion of a configuration on whetherand/or how to provide the notification for a particular digital elementmay be included in the identification received in 508. In someembodiments, at least a portion of a configuration on whether and/or howto provide the notification for a particular digital element may beobtained from a user preference and/or user account information.

In some embodiments, one or more of the received digital elements areassociated with their corresponding dynamic location. For example, alocation of the digital element is tied to a current location of aphysical device (e.g., smartphone) that is able to be moved to adifferent location. For any received digital element associated with adynamic location, an updated location of the digital element may bereceived periodically and/or dynamically (e.g., received when locationhas changed). In some embodiments, an evaluation of whether any newdigital element matches the criteria for receiving the digital elementis periodically and/or dynamically determined whether any update to adynamic location of a digital element causes it to meet the criteria.Identifiers of any new digital element that matches the criteria isreceived. An update to a dynamic location of a digital element may causeit to no longer match the criteria.

FIG. 6 is a flowchart illustrating an embodiment of a process forrendering a digital element. In some embodiments, the process of FIG. 6is at least in part included in step 508 of FIG. 5. The process of FIG.6 may be at least in part implemented in device 102 of FIG. 1. In someembodiments, the process of FIG. 6 may be repeated at a periodicinterval. In some embodiments, the process of FIG. 6 may be repeateddynamically (e.g., when location of a digital element is changed, when alocation of a viewing device is changed, etc.).

At 602, a world view associated with a location and an orientation of adevice is determined. In some embodiments, determining the world viewincludes determining an orientation of the device. For example, a usermay navigate an augmented reality world by moving the device in thephysical world and a corresponding view of the physical world capturedby the camera of the device is augmented with visual, sonic and/orsomatic representations of digital elements at appropriate locations anddisplayed on a screen of the device. In some embodiments, the world viewis to be augmented to provide the augmented reality view with a renderedvisual, sonic and/or somatic representation of a digital element. Insome embodiments, an image captured by a camera (e.g., sensor 110 ofFIG. 1) of the device is to be modified to include a visualrepresentation of the digital element placed at a location depicted inthe captured image. In some embodiments, rather than using images from acamera of the device to display the augmented reality world, determiningthe world view that includes obtaining a previously captured imageand/or a virtual image may be utilized (e.g., an image matching acurrent location and orientation of the device).

The detected orientation of the device may be used to determine whetherand where a digital element (e.g., placed using the process of FIG. 3)should be rendered on screen of the device. For example, by detectingthe orientation and geographical location of the device, the environmentbeing captured by a camera of the device and whether the digital elementis located within the captured environment are determined. In someembodiments, determining the orientation of the device includesutilizing one or more sensors (e.g., sensor 110 of FIG. 1) of thedevice. For example, one or more of the following sensors are utilizedto detect the orientation: an accelerometer, a compass, a gyroscope, andan orientation sensor.

In some embodiments, determining the orientation includes determining ahorizontal heading/bearing pointed by the orientation of the device. Forexample, a compass directional bearing (e.g., numerical degree, compassdirection, etc.) pointed by a camera of the device (e.g., pointing inthe direction perpendicularly away from rear surface of device) in theplane of the earth horizon is determined. In some embodiments, thehorizontal heading/bearing of the device is the center horizontalheading/bearing of a world view shown on a display of the device. Forexample, the horizontal heading/bearing of the device is the horizontaldirection pointed by the center of the image captured by a camera of thedevice.

In some embodiments, determining the orientation includes determining avertical heading/bearing pointed by the orientation of the device. Forexample, a vertical directional bearing (e.g., numerical degree, etc.)pointed by a camera of the device (e.g., pointing perpendicularly awayfrom rear surface of device) in the plane perpendicular to the earthhorizon is determined. In some embodiments, the vertical heading/bearingof the device is the center vertical heading/bearing of a world viewshown on a display of the device. For example, the verticalheading/bearing of the device is the vertical direction pointed by thecenter of the image captured by a camera of the device. In someembodiments, determining the orientation includes determining a verticaltilt of the device.

At 604, one or more digital elements to render are selected. In someembodiments, selecting the digital elements includes receiving at leasta portion of the identification received in 508 of FIG. 5. In someembodiments, the digital element to be rendered is associated with anaugmented reality view to be displayed on a screen of a viewing devicesuch as device 102 of FIG. 1. For example, an identification of digitalelement(s) physically located near the device was received in step 508of FIG. 5 and stored in a storage such as storage 112 of FIG. 1. In someembodiments, only digital elements located within a specified distancefrom the viewing device are to be rendered. The specified distance maybe preset and/or configurable. For example, using a slider, a user isable to adjust the distance value to increase or decrease the number ofdigital elements to be eligible to be rendered. A user may utilize thedevice to display an augmented reality view of the surrounding physicallocation, and if a digital element identified in the identification isphysically located in the location to be displayed in the augmentedreality view, the digital element is selected to be rendered. In someembodiments, selecting the digital element includes comparing a detectedphysical location and orientation of a viewing device with placementlocations associated with identified digital elements and selecting oneor more digital elements that are within the displayed augmented realityworld view (e.g., located within a location depicted in an imagecaptured with a camera of the device).

In some embodiments, one or more digital elements that are locatedwithin captured image view are selected from a group of eligible digitalelements (e.g., elements received in 508 of FIG. 5) at least in part byusing a determined heading/bearing of the device and a field of view ofan augmented reality view to be displayed by the device. For example,for each digital element of the group of digital elements, a directionalheading/bearing (e.g., horizontal and/or vertical heading/bearings) froma determined location of the device to the digital element isdetermined, and a digital element is selected to be rendered if aheading/bearing of the digital element is within a field of view rangefrom a heading/bearing pointed by the device (e.g., determined in 602).In some embodiments, each digital element of the group of digitalelements is associated with a vertical heading/bearing and/or a tilt inaddition to a horizontal heading/bearing. For example, the digitalelement may be placed at a geographical location (e.g., placed using theprocess of FIG. 3) specified by a location coordinate that includes alatitude, longitude, and height/altitude components, and a horizontaland a vertical directional heading/bearing of the digital element aredetermined with respect to a detected location of the device (thedigital element is selected to be rendered if the horizontal andvertical headings/bearings of the digital element are within a field ofview range from the horizontal and vertical headings/bearings of thedevice). The height component of the location coordinate of the digitalelement may be defined as a fixed distance above a detected altitude ofthe device. For example, all digital elements are placed at a heightthree feet above a detected altitude of the device.

In another example, the digital element may be placed at a geographicallocation (e.g., placed using the process of FIG. 3) specified by alocation coordinate that includes latitude, longitude, and tiltcomponents (e.g., tilt angle of the device when digital element placedand/or standard tilt angle that is same across all digital elements,etc.), and a horizontal directional heading/bearing of the digitalelement is determined with respect to a detected location of the deviceto the location coordinate of the digital element (the digital elementis selected to be rendered if the horizontal heading/bearing of thedigital element is within a field of view range from a horizontalheading/bearing of the device and a tilt of the digital element iswithin a field of view range from a detected tilt of the device). Thetilt component of the location coordinate of the digital element may bedefined as a fixed tilt angle above a zero tilt angle of the device. Forexample, all digital elements are placed at a 45 degree tilt angle abovea zero angle plane parallel to the horizon.

The field of view range may depend on specifications (e.g., angle ofview range determined using lens focal length and sensor size) of acamera (e.g., included in sensor 110 of FIG. 1) of the device. In oneexample, a digital object is located at 160 degrees horizontal bearingdirection from the device and the device is pointing towards 150 degreesin the horizontal bearing direction. In this example, the digital objectis to be rendered because the camera of the device has a 30 degreehorizontal angle of view, which means that the device is able to view+/−15 degrees (i.e., half of angle of view on each side) from thehorizontal bearing direction (150 degrees) of the device, and the 160degrees direction of the digital element is within this range (i.e.,within 135-165 degrees range centered around horizontal bearingdirection of the device). In the vertical direction, the digital objectof the example is located at 50 degrees in the vertical bearingdirection and the device is pointing towards 45 degrees in the verticalbearing direction, so the digital object is to be rendered because thecamera of the device has a 40 degree vertical angle of view, which meansthat the device is able to view +/−20 degrees (i.e., half of angle ofview on each side) from the 45 degrees vertical bearing direction of thedevice, and the 50 degrees bearing direction of the digital element iswithin this range (i.e., within 25-65 degrees range centered aroundvertical bearing direction of the device).

The field of view range may depend on specifications (e.g., angle ofview range determined using lens focal length and sensor size of thecamera) of a camera (e.g., sensor 110 of FIG. 1) that captured an imagedisplayed as the augmented reality world environment. The field of viewrange may depend on the angle of view of an image displayed as theaugmented reality world environment. As the viewing device is moved tonavigate around the augmented reality environment, different digitalelements within the view of the augmented reality environment may bedisplayed.

At 606, a visual representation associated with the selected digitalelement is determined. In some embodiments, determining the visualrepresentation includes determining an image and/or animation to bedisplayed in an augmented reality world view to indicate a presence of adigital element at a location within the augmented reality world view.In some embodiments, at least a portion of the specification of thevisual representation is included in the digital element selected in604. In some embodiments, at least a portion of the specification of thevisual representation is included in data received from a server, suchas identification data received in step 508 of FIG. 5. The visualrepresentation may include an image, an animation, an icon, a colorspecification, a size specification, and a notification to provide toindicate the digital element may be obtained. In some embodiments,determining the visual representation includes scaling and/or modifying(e.g., using visual perspective rules) an image/animation representationof the selected digital element based on a relative location of thedigital element with respect to a distance and/or orientation of adevice to render the visual representation. For example, for eachdigital element to be rendered, a distance between the digital elementand the viewing device is determined and a rendering size of the digitalelement may be at least in part proportional (e.g., smaller if furtheraway and larger if closer) to the distance. In some embodiments, if adigital element is selected to be rendered, a representation of thedigital element may be scaled between a maximum size and a minimum sizebased on a distance between the digital element and a viewing device. Insome embodiments, a numerical value indicating a distance value betweenthe view device and the digital element is visually shown to the user(e.g., rendered next to visual representation of digital element).

In some embodiments, a sonic representation associated with the selecteddigital element is determined. In some embodiments, determining thesonic representation includes determining an audio to be produced in anaugmented reality world to indicate a presence of a digital element at alocation. In some embodiments, determining the sonic representationincludes scaling and/or modifying an audio representation of theselected digital element based on a relative location of the digitalelement with respect to a distance and/or orientation of a device torender the audio representation. For example, a volume and/or tone ofthe audio representation may be increased as the digital element islocated relatively closer to the device, and the volume and/or tone ofthe audio representation may be decreased as the digital element islocated relatively further away from the device.

In some embodiments, a somatic representation associated with theselected digital element is determined. In some embodiments, determiningthe somatic representation includes determining a tactile/hapticfeedback to be produced in an augmented reality world to indicate apresence of a digital element at a location. In some embodiments,determining the somatic representation includes scaling and/or modifyinga tactile/haptic representation of the selected digital element based ona relative location of the digital element with respect to a distanceand/or orientation of a device to render the somatic representation. Forexample, an intensity and/or pattern of the tactile/hapticrepresentation may be increased as the digital element is locatedrelatively closer to the device, and the intensity and/or pattern of thetactile/haptic representation may be decreased as the digital element islocated relatively further away from the device.

At 608, a rendering location associated with each of the one or moreselected digital elements is determined. In some embodiments,determining the rendering location of a selected digital elementincludes determining a screen placement location of the selected digitalelement within a displayed augmented reality world view. In someembodiments, each of the selected digital elements is associated with ahorizontal heading and a vertical heading that have been determinedbased on a placement location of the element with respect to a detectedlocation of a viewing device.

In order to place the selected visual representation of the digitalelement, a display displaying the augmented reality environment isdivided/mapped/labeled into screen locations identified by horizontaland vertical heading coordinates (e.g., within horizontal and verticalfield of view ranges of the device from a horizontal and verticalheading pointed by an orientation of the viewing device). For example, ahorizontal heading and a vertical heading pointed by the orientation ofthe device are set as the center of the displayed augmented realityworld view with reference to the perpendicular heading coordinate axisradiating out from the center in both the horizontal and verticaldirections (e.g., respective ends of the axis at the edges of thedisplayed augmented reality world view correspond to ends of field ofview range of the device). A selected representation of the digitalelement may be placed in this axis corresponding to its determinedhorizontal and vertical headings. In one example, a camera of a devicewith a 30 degree horizontal angle of view is pointing towards horizontalbearing direction of 150 degrees (i.e., the horizontal axis of theaugmented reality world view is divided from 135 degrees to 165degrees), and the camera has a 40 degree vertical angle of view and ispointing towards vertical bearing direction of 45 degrees (i.e., thevertical axis of the augmented reality world view is divided from 25degrees to 65 degrees).

In some embodiments, a tilt angle/direction is utilized instead of thevertical heading when determining the placement location of the digitalelement. In some embodiments, the location associated with the digitalelement is dynamically modified. For example, a region associated withthe digital element becomes smaller and/or larger based at least in parton a time value, an elapsed time, a number of times the digital elementhas been obtained, and/or any other changing factor. In another example,the digital element's placement location is changed due to movement ofthe digital element (e.g., due to dynamically updated location of acorresponding reference location device) and/or movement of the deviceused to explore the augmented reality world. In some embodiments, inorder to stabilize a location of a digital element, the digitalelement's placement location is not modified due to change in detectedlocation of the device.

At 610, the determined visual representation of the digital element isrendered over the determined world view. In some embodiments, renderingthe visual representation includes superimposing the selected visualrepresentation of the digital element (e.g., appropriately scaled/skewedfollowing visual perspective rules based on a distance between a viewingdevice and digital element location) at the appropriate determinedlocation on the determined world view corresponding to the location ofthe digital element (e.g., a selected representation of the digitalelement may be placed at its corresponding horizontal and verticalheadings on a heading coordinate axis dividing/mapping/labelinglocations on viewing device display). The created augmented reality viewdisplays the digital element as being placed within the augmentedreality world. As the device moves closer to the location of the digitalelement, the visual representation of the digital element may be scaled(e.g., to become larger) to follow visual perspective rules in creatingan illusion that the user is approaching the digital element. Thedigital element may be animated to allow the digital element to move inthe augmented reality world view. In some embodiments, the rendering ofthe digital element is associated with an audio, tactile and/or othersomatosensory feedback. For example, an audio, tactile and/or othersomatosensory feedback may be provided via the device to indicate thedigital element.

In some embodiments, if a large number of visual representations of thedigital elements are rendered close together (e.g., because they are alllocated in very close orientation from the viewing device), it may bedifficult for a user to tell the digital elements apart and/or select adesired digital element. In some embodiments, when visualrepresentations of the digital elements overlap, only the closest one tothe view device may be eligible as selectable. In some embodiments, auser is able to zoom in and out (e.g., using pinch to zoom) of the worldview and corresponding visual representations of the digital element arealso made larger and smaller according to the zoom. This may enable auser to better distinguish and/or select a representation of a desireddigital element among a cluster of visual representations of the digitalelements. In some embodiments, a random noise factor is added toplacement locations of clustered/overlapping visual representations toassist in visually separating the visual representations of the digitalelements.

In some embodiments, a two-dimensional overhead view of locations ofdigital elements with respect to the viewing device is provided. Forexample, an overhead radar view is shown, where the center of the radarview represents the location of the viewing device and dots representingdifferent digital elements surrounding the viewing device are mappedaround the center with respect to the distance (e.g., further awaydigital element is shown further away from the center) and orientation(e.g., current horizontal orientation and field of view of the viewingdevice is indicated and respective directions of digital elements areshown) from the viewing device. The two-dimensional overhead view may beprovided together with the augmented reality world view (e.g., radarview shown in a corner). In some embodiments, a user is able to switchbetween augmented reality world view and two-dimensional overhead viewbased on a tilt of the viewing device. For example, when a vertical tiltof the viewing device (e.g., detected using a tilt/gyroscope sensor)exceeds a threshold, the augmented reality world view is shown and whenthe vertical tilt of the viewing device is below the threshold, theoverhead view is shown.

In some embodiments, a rendering size of a digital element is calculatedusing real distance between user position and location assigned to thedigital element. Example pseudocode below outlines at least a portion ofthe steps performed to calculate the rendered size of a digital element.

define min and max digital element size (in pixels) relative to screensize;

calculate distance;

normalize distance to fit in our min/max range;

calculate digital element size (pixels);

transform pixel size to OpenGL screen size (rectangle (−1,−1), (1,1));

In some embodiments, a digital element horizontal position is calculatedusing compass readings and camera FOV (field of view defined indegrees). An example of this calculation is described by pseudocodebelow:

get compass true heading;

define mix/max screen heading;

min=heading−FOV/2−some margin;

max=heading+FOV/2+some margin;

calculate digital element bearing between user location and digitalelement location;

if bearing is between our min/max range;

-   -   calculate OpenGL screen position and mark object as valid to be        rendered;    -   apply low pass filter to make smooth transition between old and        new position;

else;

mark as not valid to be rendered;

In some embodiments, a digital element vertical position is calculatedusing the gyroscope & accelerometer readings. An example of thiscalculation is described by pseudocode below:

define starting vertical position as half of the screen;

get accelerometer data;

calculate average reading from last n measurements;

calculate vertical device tilt;

add tilt value to starting position (this will move digital element upor down);

apply low pass filter to smooth transition between old and new position;

An example pseudocode of rendering a frame of AR environmentvisualization is below:

set viewport size;

set orthographic projection matrix;

clear render buffer;

bind program to draw camera feed;

draw camera frame;

bind program to draw bubbles;

for digital element in group of digital elements;

-   -   draw digital element;

present render buffer;

FIG. 7 is a flowchart illustrating an embodiment of a process forupdating a target location of a digital element. In some embodiments,the process of FIG. 7 is at least in part included in step 504 of FIG.5. In some embodiments, the process of FIG. 7 triggers the process ofFIG. 6. The process of FIG. 7 may be at least in part implemented indevice 102 of FIG. 1. In some embodiments, the process of FIG. 7 may berepeated at a periodic interval. In some embodiments, the process ofFIG. 7 may be repeated dynamically (e.g., when a new location of aviewing device is detected, etc.).

At 702, an updated location of a viewing device location is received. Insome embodiments, receiving the updated location includes determining aphysical location of a device that is to be used to explore an augmentedreality environment that includes one or more digital elements. Forexample, determining the physical location includes determining thephysical location of device 102 of FIG. 1. In some embodiments,receiving the location includes automatically determining a locationusing one or more of the following: GPS data, an IP address, Wi-Fipositioning data, local area network data, cellular signal positioningdata, a captured image (e.g., machine vision utilizing visual patternmatching to determine location), a captured audio, and a user providedlocation identifier. In some embodiments, receiving the locationincludes receiving an updated location from a location service providedby an operating system. For example, an operating system of device 102of FIG. 1 provides a location identifier determined using one or moresensors of device 102. The provided location may be already processed tominimize errors of the location. For example, the operating system mayprovide a location that has been already processed using dead reckoning.Despite this and other processing, the provided location may be unstableand will fluctuate due to detection errors. In some embodiments, thedevice is being used to display an augmented reality world view renderedin 610 of FIG. 6.

At 704, the received location is processed to determine a currentfiltered location of the viewing device. Because the received locationmay be unreliable and fluctuate due to detection errors, the receivedlocation may be filtered to determine a filtered location coordinate inattempting to smooth fluctuations of the locations. In some embodiments,a box filter is utilized to average the updated location with one ormore other previously received updated locations. In some embodiments,the received updated location is averaged with a predetermined number oflast consecutively detected/received location identifiers (e.g., averagelast five location coordinates received at a periodic interval from alocation service) to determine the current filtered location. Forexample, each location coordinate component is averaged across apredetermined number of latest received location coordinates. In analternative embodiment, the received location is not processed and thereceived location is set as the current filtered location.

In some embodiments, determining the current filtered location includesdetermining whether a difference between the received updated locationof the device and a previously received location of the device differsby a threshold amount. For example, if the difference is at or below thethreshold (e.g., threshold associated with a maximum rate of change),the received updated location is set as the current filtered locationand if the difference is above the threshold, the received updatedlocation may be averaged with another previously received locationand/or modified so that the difference is at or below the threshold. Inanother example, if the difference is at or below the threshold (e.g.,threshold associated with significant intentional device movement), thereceived updated location may be averaged with another previouslyreceived location, and if the difference is above the threshold, thereceived updated location is set as the current filtered location (e.g.,no need to smooth because significant movement is due to device movementrather than location detection error). In some embodiments, thethreshold is dynamically determined based at least in part on a type ofthe digital object, a size of a visual representation of the digitalobject, and/or a distance between a location of the digital object andthe received updated location of the device.

At 706, an updated reference location of a reference location devicecorresponding to a digital element is received. In some embodiments,receiving the updated reference location includes receiving a physicallocation of a device that serves as a reference location for one or moredynamic locations of one or more digital elements. For example,determining the reference location includes determining the physicallocation of device 120 of FIG. 1. In some embodiments, use one or moreof the following to receive the location that was automaticallydetermined: GPS data, an IP address, Wi-Fi positioning data, local areanetwork data, cellular signal positioning data, a captured image (e.g.,machine vision utilizing visual pattern matching to determine location),a captured audio, and a user provided location identifier. The providedreference location may be already processed to minimize errors of thelocation. One example is the reference location that has been alreadyprocessed using dead reckoning. Despite this and other processing, theprovided reference location may be unstable and will fluctuate due todetection errors.

At 708, the received reference location is processed to determine acurrent filtered reference location for use in updating one or morelocations of one or more corresponding digital elements. Because thereceived reference location may be unreliable and fluctuate due todetection errors, the received reference location may be filtered todetermine a filtered location coordinate in attempting to smoothfluctuations of the reference locations. In some embodiments, a boxfilter is utilized to average the updated reference location with one ormore other previously received updated reference locations. In someembodiments, the received updated reference location is averaged with apredetermined number of last consecutively detected/received referencelocation identifiers (e.g., average last five location coordinatesreceived at a periodic interval from a location service) to determinethe current filtered reference location. For example, each locationcoordinate component is averaged across a predetermined number of latestreceived location coordinates. In an alternative embodiment, thereceived reference location is not processed and the received locationis set as the current filtered reference location.

In some embodiments, determining the current filtered reference locationincludes determining whether a difference between the received updatedreference location of the reference location device and a previouslyreceived reference location of the reference location device differs bya threshold amount. For example, if the difference is at or below thethreshold (e.g., threshold associated with a maximum rate of change),the received updated reference location is set as the current filteredreference location and if the difference is above the threshold, thereceived updated location may be averaged with another previouslyreceived location and/or modified so that the difference is at or belowthe threshold. In another example, if the difference is at or below thethreshold (e.g., threshold associated with significant intentionaldevice movement), the received updated reference location may beaveraged with another previously received reference location, and if thedifference is above the threshold, the received updated referencelocation is set as the current filtered reference location (e.g., noneed to smooth because significant movement is due to device movementrather than location detection error). In some embodiments, thethreshold is dynamically determined based at least in part on a type ofthe associated digital object/element, a size of a corresponding visualrepresentation of the digital object/element, and/or a distance betweena location of the corresponding digital object/element and the receivedupdated reference location. The current filtered reference location isutilized to update locations of one or more digital objects/elementsplaced in association with the reference location device.

At 710, a target rendering coordinate of each of one or more digitalelements is updated. In some embodiments, determining the targetrendering coordinate includes determining a directional heading/bearing(e.g., horizontal and/or vertical headings) and a distance between anupdated location of a digital element and the determined currentfiltered location. In some embodiments, the one or more digital elementsare digital elements received at 508 of FIG. 5 and/or selected at 604 ofFIG. 6. In some embodiments, the target rendering coordinate is a targetgoal rendering location where the digital element is to be placed. Forexample, the digital element is rendered at a current rendering locationcoordinate and the digital element is to be moved/animated towards thetarget rendering coordinate.

In some embodiments, determining the directional heading for each of theone or more digital elements includes determining a horizontaldirectional heading/bearing. For example, a compass directional bearingin the plane of the earth horizon (e.g., numerical degree, compassdirection, etc.) from the current filtered location to the placementlocation (e.g., latitude/longitude) of the digital element (e.g.,determined in 306 of FIG. 3) is determined. In some embodiments,determining the directional heading for each of the one or more digitalelements includes determining a vertical heading/bearing pointed by theorientation of the device. For example, a vertical directional bearing(e.g., numerical degree, etc.) in the plane perpendicular to the earthhorizon from the height/altitude of the filtered current location to theheight/altitude location of the digital element is determined. Theheight/altitude of the filtered location may be an altitude of thedevice at least in part detected using a sensor (e.g., GPS) or a presetdefault reference height (e.g., set as reference height of zero). Theheight/altitude location of the digital element may be an altitude ortilt of the device at least in part detected using a sensor (e.g.,detected at 306 of FIG. 3) or a predetermined reference height offsetfrom the height/altitude of the filtered location (e.g., three feetabove the height/altitude of the filtered location).

In an alternative embodiment, the target rendering coordinate of each ofthe one or more digital elements is not updated after it is initiallydetermined. For example, in order to stabilize a rendering location ofthe digital elements, rendering locations of the digital elements arefixed until a new set of matching digital elements is requested (e.g.,requested again at 506 of FIG. 5).

FIG. 8 is a flowchart illustrating an embodiment of a process fordetermining a next rendering location of a digital element. In someembodiments, the process of FIG. 8 is at least in part included in step610 of FIG. 6. In some embodiments, the process of FIG. 7 triggers theprocess of FIG. 8. The process of FIG. 8 may be at least in partimplemented in device 102 of FIG. 1. In some embodiments, the process ofFIG. 8 may be repeated at a periodic interval. In some embodiments, theprocess of FIG. 8 may be repeated dynamically (e.g., when a new targetrendering coordinate is determined for a digital element, etc.).

At 802, a preliminary next rendering coordinate of a digital element isdetermined based at least in part on a current rendering coordinate anda target rendering coordinate of the digital element. In someembodiments, the target rendering coordinate of the digital element isthe target rendering coordinate updated in 710 of FIG. 7 (e.g., updateddue to movement of viewing device and/or movement of a referencelocation device of a dynamic location of a digital element). In someembodiments, the current rendering coordinate is associated with alocation where a visual representation of the digital element iscurrently placed within an augmented reality environment. For example,the current rendering coordinate includes a directional heading/bearing(e.g., horizontal and/or vertical headings) and a distance between alocation of the digital element and a current location of a viewingdevice that indicate a rendering location of a visual representation ofthe digital element.

In some embodiments, a visual representation of the digital element isto be eventually visually animated towards the target renderingcoordinate. For example, the rendering coordinate of the digital elementmay be specified relative to a current location of a viewing device andif the current location of the viewing device changes (e.g., due tolocation sensor error and/or physical movement of the viewing device)and/or a dynamic location of a digital element changes (e.g., due tolocation sensor error and/or physical movement of the reference locationdevice associated with the digital element), the rendering location ofthe digital element needs to be modified to reflect the movement of theviewing device location and/or digital element. However, sudden movementof a visual representation of the digital element to a new renderinglocation may seem unnatural to a user if the visual presentation jumpsfrom one new location to another. Additionally, a digital element thatunpredictably moves around at a fast speed may be difficult for a userto select/capture. Thus, by animating movement of the visualrepresentation of the digital element from its old location to a newlocation in a controlled manner (e.g., travel speed limited), movementof the visual representation may appear natural and predicable to auser.

In some embodiments, determining the preliminary next renderingcoordinate includes determining whether a difference between the currentrendering coordinate and the target rendering coordinate differs beyonda threshold. For example, if the difference is at or below the threshold(e.g., threshold associated with a maximum rate of change, maximumcoordinate value change, etc.), the preliminary next renderingcoordinate is set as the target rendering coordinate and if thedifference is above the threshold, the preliminary next renderingcoordinate is set by modifying the current rendering coordinate up tothe threshold for each component of the preliminary next renderingcoordinate such that the preliminary next rendering coordinate isclosest to the target rendering coordinate (e.g., preliminary nextrendering coordinate is progressing towards the target renderingcoordinate at a rate limited by a threshold maximum rate of change). Insome embodiments, the target rendering coordinate is set as thepreliminary next rendering coordinate regardless of the differencebetween the current rendering coordinate and the target renderingcoordinate.

At 804, the preliminary next rendering coordinate is modified using amotion randomization component. For example, a visual representation ofthe digital element is desired to appear wavering/hovering (e.g.,constantly moving slightly in random directions near the preliminarynext rendering coordinate) even if the detected location of a viewingdevice has not changed. By constantly moving/animating the visualrepresentation of the digital element within the augmented realityenvironment, a user is informed that the rendered location of thedigital element within the augmented reality environment may fluctuateand is subject to change. Thus when the visual representation of thedigital element is moved within the augmented reality environment (e.g.,due to GPS error, viewing device movement, etc.), the user is notsurprised that the visual representation is moving.

In some embodiments, modifying the preliminary next rendering coordinateincludes modifying the preliminary next rendering coordinate by adding aBrownian motion component to the preliminary next rendering coordinate.In some embodiments, a directional component of the randomizationcomponent is added to a directional component of the preliminary nextrendering coordinate. In some embodiments, a distance component of therandomization component is added to a distance component of thepreliminary next rendering coordinate. In some embodiments, determiningthe motion randomization component includes utilizing the currentrendering coordinate and the preliminary next rendering coordinate. Forexample, a random factor portion of a difference between the currentrendering coordinate and the preliminary next rendering coordinate isutilized in determining the randomization component. In someembodiments, the randomization component is determined using a randomnumber generator. In some embodiments, the randomization component islimited in magnitude. For example, the randomization component isproportional to the difference between the current rendering coordinateand the preliminary next rendering coordinate. The motion randomizationcomponent may also assist in being able to visual separateclustered/overlapping visual representations of digital elements.

At 806, the modified preliminary next rendering coordinate is set as thenext rendering coordinate. For example, the resulting preliminary nextrendering coordinate modified in 804 is set as the next renderingcoordinate. In some embodiments, the next rendering coordinateidentifies the next rendering location where a visual representation ofthe digital element is to be located. For example, the visualrepresentation of the digital element is to be visually moved withmovement animation from its current rendering coordinate to the nextrendering coordinate. The next rendering coordinate may include adirectional heading/bearing (e.g., horizontal and/or vertical headings)and a distance between a location of the next rendering coordinate and acurrent location of a viewing device.

At 808, a visual representation of the digital element is animated fromthe current rendering coordinate to the next rendering coordinate. Insome embodiments, animating the visual representation includes visuallymoving the visual representation within an augmented realityenvironment. For example, the visual representation of the digitalelement is rendered over a determined world view (e.g., world viewdetermined in 602 of FIG. 6) in successively different appropriatelocations (e.g., appropriately scaled/skewed following visualperspective rules based on a distance between a viewing device anddigital element location) on the determined world view corresponding tothe travel path from the current rendering coordinate to the nextrendering coordinate. In some embodiments, animating the visualrepresentation using cubic interpolation and/or otherinterpolation-based animation to animate movement of the visualrepresentation from the current rendering coordinate to the nextrendering coordinate is used.

At 810, the current rendering coordinate is updated with the value ofthe next rendering coordinate. For example, because the visualrepresentation of the digital element has been animated to the nextrendering coordinate, the next rendering coordinate becomes the currentrendering coordinate of the digital element. In some embodiments, theprocess of FIG. 8 returns to 802 and the process of FIG. 8 is repeated.For example, the process of FIG. 8 may be repeated at a periodicinterval with each successive next rendering coordinate becoming thecurrent rendering location. The target rendering coordinate of thedigital element may be dynamically changing and each successiveiteration of the process of FIG. 8 may use the updated target renderingcoordinate.

FIG. 9 is a flowchart illustrating an embodiment of a process forbiasing a rendering coordinate of a digital element. In someembodiments, the process of FIG. 9 is at least in part included in step610 of FIG. 6, 706 of FIG. 7 and/or 806 of FIG. 8. In some embodiments,the process of FIG. 9 triggers the process of FIG. 8 to be paused and/ornot executed. The process of FIG. 9 may be at least in part implementedin device 102 of FIG. 1. In some embodiments, the process of FIG. 9 maybe repeated at a periodic interval. In some embodiments, the process ofFIG. 9 may be repeated dynamically (e.g., when an orientation/locationof a viewing device is changed, etc.).

At 902, it is determined whether a digital element's renderingcoordinate meets a bias criteria. In some embodiments, the digitalelement is the digital element rendered in 610 of FIG. 6. It may bedesired to bias a rendering coordinate of the digital element to allowthe digital element to be more easily selected by a user. For example,due to errors of determining an exact location of a viewing device, avisual representation of the digital element rendered using therendering coordinate specified relative to a location of the viewingdevice may be moving within an augmented virtual reality environment. Auser may select/capture the digital element to obtain additional digitalcontent associated with the digital element by touching the visualrepresentation displayed on a screen of the viewing device and/ororientating the view device such that a selection aim area (e.g.,stationary crosshairs displayed on the center of the display screen ofthe view device) is placed over the digital element for at least apredetermined amount of time. However, if the visual representation ismoving on the screen due to the fluctuations in the detected physicallocation of the view device, it may be difficult for the user to selectthe visual representation and/or orient the view device quickly enoughto keep the moving visual representation within the selection aim areaand/or touch the visual representation.

In some embodiments, determining whether the rendering coordinate meetsthe bias criteria includes determining whether the digital element hasbeen indicated by a user. For example, it is determined whether a visualrepresentation of the digital element has been indicated with a touchselection input on a touch input screen of a viewing device. In anotherexample, it is determined whether a visual representation of the digitalelement is within a selection aim area of a display of the viewingdevice (e.g., determine whether a center of the visual representation iscurrently placed within a displayed outlined area where the associateddigital element is captured after the visual representation is placedwithin the area for a predetermined amount of time).

In some embodiments, the rendering coordinate includes a directionalcomponent (e.g., a horizontal/vertical directional heading/bearing) anda distance component (e.g., distance between a location of the digitalelement and a current location of a viewing device). In someembodiments, determining whether the rendering coordinate meets the biascriteria includes determining whether a directional component of therendering coordinate is within a determined range. For example, it isdetermined whether the heading of the rendering coordinate is within athreshold range (e.g., field of view range determined in 604 of FIG. 6)from a current heading of a viewing device (e.g., current headingdetermined in 602 of FIG. 6). By determining whether the heading of therendering coordinate and the heading of the viewing device is within athreshold difference, it may be determined whether the viewing device ispointing towards (e.g., selecting aiming area is at the horizontalcenter of the screen of a viewing device) the rendering coordinate ofthe digital element. In another example, it is determined whether thevisual representation of the digital element is being displayed on ascreen of the viewing device by determining whether the directionalcomponent of the rendering coordinate is within the field of view ofheadings being displayed on the screen (e.g., headings included in fieldof view range determined in 604 of FIG. 6).

If at 902 it is determined that the digital element's renderingcoordinate meets a bias criteria, at 904, a second rendering coordinateof the digital element is modified in a manner associated with the biascriteria. The second rendering coordinate may be the target renderingcoordinate determined in 706 of FIG. 7 and/or the next renderingcoordinate determined in 806 of FIG. 8.

In some embodiments, modifying the second rendering coordinate includesbiasing a directional component of the next rendering coordinate using adetected current heading (e.g., detected at 602 of FIG. 6) of a viewingdevice. For example, it is desired for a visual representation of thedigital element to remain within the directional headings viewable inthe angle of view of the viewing device by biasing the second renderinglocation of the visual representation of the digital element to be movedtowards the center of directional heading pointed by the viewing device.Biasing the directional component of the second rendering coordinateusing the detected current heading may include setting the directioncomponent of the second rendering coordinate as a weighted sum of theoriginal direction component of the second rendering coordinate and thedirectional heading pointed by the viewing device.

In some embodiments, modifying the second rendering coordinate includesbiasing a directional component of the second rendering coordinate usinga directional heading associated with a selection aim area displayed ona viewing device. For example, it is desired for a visual representationof the digital element to remain within the selection aim area bybiasing the second rendering location of the visual representation ofthe digital element to remain/move towards the center of selection aimarea. Biasing the directional component of the second renderingcoordinate using the directional heading associated with a selection aimarea may include setting the direction component of the second renderingcoordinate as a weighted sum of the original direction component of thesecond rendering coordinate and the current directional heading wherethe selection aim area is located.

In some embodiments, modifying the second rendering coordinate of thedigital element includes not updating the second rendering coordinate ofthe digital element and allowing the digital element to remain in itscurrent rendering location. For example, at 904, the next renderingcoordinate in 806 of FIG. 8 is modified to be the current renderingcoordinate rather than the modified preliminary next renderingcoordinate. In another example, at 904, the process of FIG. 8 ispaused/stopped until the digital element no longer meets the biascriteria. In another example, at 904, the target rendering coordinate in706 of FIG. 7 is modified to be not updated in 706.

If at 902 it is determined that the digital element's renderingcoordinate does not meet the bias criteria, the process ends. Theprocess may return to 902. For example, the process of FIG. 9 may berepeated at a periodic interval and/or dynamically (e.g., when anorientation and/or location of a viewing device is updated).

FIG. 10 is a flowchart illustrating an embodiment of a process forretrieving a rendered digital element. The process of FIG. 10 may be atleast in part implemented in device 102 and/or sever 106 of FIG. 1. Insome embodiments, the process of FIG. 10 is used at least in part toobtain content of a digital element rendered in an augmented realityview. For example, the process of FIG. 6 is used to provide a renderedview of a digital element that may be obtained. In some embodiments,although a visual representation of a digital element can be seen on adisplay screen, the digital element may not be able to be obtained untilthe device is closer to a location of the digital element. For example,as the device is moved closer to the location of the digital element, avisual, sonic and/or somatic representation of the digital elementbecomes larger. In some embodiments, when the digital element is able tobe obtained, an indication is provided. For example, the visualrepresentation may blink, glow, pulsate, and/or change color to indicatethat the element can be obtained. In some embodiments, the device mayvibrate and/or emit a sound to indicate that the element can beobtained.

At 1002, an indication of a selected digital element is received. Insome embodiments, a displayed digital element that is able to beobtained may be selected to be obtained by providing a gesture input.For example, a visual representation of a digital element that isdisplayed in an augmented reality view may be selected by a user to beobtained at least in part by touching the visual representation on atouch screen display. In some embodiments, a user may perform amovement/gesture (e.g., detected using an accelerometer, orientationsensor, compass, and/or gyroscope) with a device rendering the digitalelement to select a digital element to be obtained. For example, a usermay be required to swing the device in a semicircular motion to act outcapturing the rendered digital element. In another example, a user maybe required to rub the visual representation of the desired digitalelement displayed on a touchscreen surface to act out scratching ascratch card to reveal the digital element contents.

In some embodiments, a user may capture a digital element by hoveringover the digital object for a preset amount of time. For example acenter of a display of a viewing device (e.g., device 102 of FIG. 1)displays a target selection area (e.g., cross hairs) and when thedigital object is aimed in the target selection area for at least apredetermined amount of time, the digital object is indicated to beretrieved/captured. In some embodiments, a user may indicate toretrieve/capture a digital element by touching and/or holding (e.g., fora predetermined amount of time) the digital object on a touch inputscreen of the device. For example, a user may touch a rendered digitalobject on a display of a viewing device to retrieve/capture the digitalobject. In some embodiments, because the rendered location of thedigital element may be unstable and change over time due to errors andlimitations of using a sensor to detect the device location, it may bedifficult to indicate a moving digital object. The process of FIG. 9 maybe utilized to stabilize the digital element.

At 1004, the indication is processed. In some embodiments, processingthe indication includes determining an identifier of the selecteddigital element. In some embodiments, processing the indication includesdetermining how and/or where to obtain contents of the selected digitalelement. In some embodiments, processing the digital element includesmodifying and/or storing data associated with the digital element toindicate that the digital element has been retrieved by a specifieduser. In some embodiments, processing the digital element includesverifying that the selected digital element is allowed to be obtained bythe user. In some embodiments, processing the indication includesobtaining contents of the selected digital element. In some embodiments,the contents may be obtained from a storage such as storage 112 and/orstorage 114 of FIG. 1.

At 1006, contents of the selected digital element are provided. In someembodiments, providing the contents includes displaying text, image,video, and/or other content associated with the digital element. In someembodiments, providing the contents includes displaying the contentsusing the application used to render the visual representation of theselected digital element. In some embodiments, providing the contentsincludes opening the contents using a different application than theapplication used to render the visual representation of the selecteddigital element. For example, the contents include a spreadsheet fileand the spreadsheet file is opened using a spreadsheet application.

At 1008, data associated with the selected digital element is received.In some embodiments, data such as utilization statistics, utilizationbehavior, and other utilization metrics associated with providedcontents of the digital element and/or other data of the digital elementis received at a server such as server 106 of FIG. 1. In someembodiments, the received data may be used to research utilizationbehavior. In some embodiments, the provided data is used to updateconfigurations associated with the selected digital element. Forexample, the selected digital element can be accessed a limited numberof times and the configuration that tracks the number of times thedigital element has been accessed is updated using the received data.

FIGS. 11A-11C are diagrams illustrating an example user interface usedto retrieve a digital element. In some embodiments, FIGS. 11A-11Cillustrate at least a portion of the processes of FIGS. 5-10. FIG. 11Ashows a user holding device 1102 that is running an application that canbe used to render and retrieve a digital element. In some embodiments,device 1102 is device 102 of FIG. 1. Screen 1104 is displaying anotification that another person has placed a “KISS” digital element(e.g., trace) at the “Baker Street Station” location for the user ofdevice 1102. In some embodiments, the notification shown in screen 1104is provided with an audio, tactile and/or other somatosensorynotification. In some embodiments, the notification shown in screen 1104was provided when the digital element was placed. In some embodiments,the notification shown in screen 1104 was provided when device 1102 waswithin a specified distance from the placement location of the digitalelement. FIG. 11B shows screen 1106 that is displaying an augmentedreality view of the “Baker Street Station” location where the digitalelement was placed. In screen 1106, a visual representation of thedigital element is rendered on top of a world view of the “Baker StreetStation” location captured using a camera of device 1102. The “KISS”digital element may be indicated to be captured by the user by touchingthe digital element, touching the digital element for a predeterminedamount of time, and/or aiming/placing the digital element withinselection aim area 1110 for a predetermined amount of time. FIG. 11Cshows screen 1108 that is displaying text message content of the digitalelement after a user of device 1102 has performed a gesture to indicatethat the user desires to obtain contents of the displayed digitalelement.

In some embodiments, rather than and/or in addition to visuallyindicating a location of a digital element, auditory/sound cues areutilized to indicate a location (e.g., direction, distance, etc.) of thedigital element. For example, the digital element is represented asemitting/reflecting a sound (e.g., music, pulse, tone, voice,sound/voice message, noise, sonar, etc.) and a user attempting to obtainthe digital element is provided auditory clues on the relative locationof the digital element with respect to a current location of the user.In some embodiments, binaural audio is utilized to indicate distanceand/or directionality of a location of a digital element with respect toa user device location. For example, if a digital element is locatedleft of a user device, a sound associated with the digital element isemitted stronger/sooner on the left audio output channel rather than theright audio output channel of the device. In some embodiments, alocation (e.g., directionality) of a digital element with respect to auser/device is indicated using inter-aural time differences (e.g., timedifference between left and right audio channels). In some embodiments,a location (e.g., distance) of a digital element with respect to auser/device is indicated using audio volume/intensity differences (e.g.,sound of digital element rendered by the user device is louder as theuser device is moved closer to the location of the digital object). Insome embodiments, a location of a digital element with respect to auser/device is indicated using one or more head-related transferfunctions (e.g., a response that characterizes how an ear receives asound from a point in space).

FIGS. 12A-12D are diagrams illustrating example user interfaces used tointeract with digital elements representing users. In some embodiments,FIGS. 12A-12D illustrate example interfaces that utilize digitalelements discussed in the processes of FIGS. 3 and 5-10.

In some embodiments, users are able to discover and interact anonymouslywith other users who are physically close to them using the describedprocesses herein. In some embodiments, users and their profiles arerepresented as visualized digital elements, floating as drops (or othervisualizations in other embodiments) in an augmented reality/virtualenvironment as shown in FIG. 12A. In various other embodiments, userscould also be represented as sound files or any other type of digitalcontent. The digital element representing a user is associated with adynamic location based on a device of the user. For example, the digitalelement is to be located at a location based on a current longitude andlatitude of a smartphone device of the user. The smartphone deviceprovides updates on its current location to a server that uses thecurrent location updates to determine a location of the digital elementrepresenting the user. The server provides the updated locations of thedigital element to other viewing devices that are located near thedigital element. Using a combination of a mobile device camera, GPScoordinates, and a gyroscope, these drops are rendered by viewingdevices in the real world in the approximate location of each userrelative to others. Location data of a digital element is updated sothat the location of a user's drop follows the user as the user moves inphysical space with the reference location of the user. This allowsaugmented reality (AR) to represent the location of oneself and others.

A viewing/observing user may select (e.g., “catch”) another user's dropdigital element (e.g., by touching it in the AR camera view). Each dropdigital element (i.e., user representation digital element) mayrepresent a profile of a corresponding user represented by the dropdigital element. For example, when the drop digital element is selected,information about the corresponding user (e.g., biographicalinformation, contact information, a description of the user, interestsof the user, photographs, video, user state, current user emotionalstate, etc.) is provided. In some embodiments, shops or brands areallowed to be users. In these cases, brands will be allowed to attachcoupons, offers, URLs, advertising, cryptocurrency information, etc. tothe profile associated with its drop digital element. In someembodiments, a single user may have multiple different identitiesrepresented by different drop digital elements. For example, one dropdigital element is associated with a professional profile while anotherdrop digital element is associated with a personal relationship profile.Which profile/drop digital element to represent a user may bedynamically changed based on a current location of the user and/or time.

A target user corresponding to a selected digital element is able to befriended or connected to the viewing/observing user as a contact. Insome embodiments, the target user corresponding to the selected digitalelement must approve the connection request before being added as acontact of the viewing user. In some embodiments, once a drop digitalelement has been selected, the viewing user is able to add (or requestto add) the corresponding target user of the drop digital element byswiping down on a visual element or indicate to not add thecorresponding target user of the drop digital element by swiping down onthe visual element. Once the target user has been added as an approvedcontact of the viewing user, the viewing user is provided the ability tointeract with the target user. For example, users can send text, photos,and location information to each other. This information may be senteither privately (e.g., only the recipient can see it via messaging) orpublicly (e.g., all users are able to see it via a public wall).

In some embodiments, each drop digital element may be associated with achat history. For example, the chat history with a user is accessiblevia the drop digital element of the user. When a viewing user catches adrop digital element of a target user, in addition to the profileinformation of the target user, the viewing user is provided access to ahistory of interactions (e.g., text conversations, photos, locations,etc.) of all the other users that have posted publicly to that userspublic wall. A user is able to control privacy settings to specify whichinformation or type of information is to be shared with which users orgroups of users. In some embodiments, a target user may be added to acontact list of the viewing user based on a specified identifier of thetarget user rather than requiring the drop digital element of the targetuser to be captured in the AR view.

In some embodiments, in the augmented reality view of drop digitalelements, a visual indication is provided to visually distinguish dropdigital elements (e.g., add different color rings) that belong to theviewing user's contact list as compared to those that are not includedin the viewing user's contact list. In some embodiments, a visualindication is provided to visually indicate which drop digital elementsthe viewing user has previously interacted with and which drop digitalelements the viewing user has not previously interacted with. Forexample, drop digital elements that have never been selected by theviewing user previously are displayed inside a water droplet; dropdigital elements that have been previously selected and stored in theviewing user's contacts are displayed with a halo surrounding their dropdigital element; and drop digital elements that have been previouslyselected and rejected are displayed with no droplet surrounding them.

In addition to human users, objects, dogs, and other animals may byrepresented by a digital element. Users might tag a dog, cat, or even acar to be represented as a digital element (e.g., associated with atracking reference location device). In some embodiments, drop digitalelements have the ability to interact with each other independently oftheir associated users. They may be able to ‘search’ other digitallytagged locations for content/users and harvest information from theirlocation. Drop digital elements will become a local, foraging searchalgorithm that adapts to the user's preferences.

FIG. 12A shows example user interface 1202 visualizing drop digitalelements floating in an augmented reality environment. The shown cameraview is the “landing screen” allowing a user to interact with a dropdigital element close by. The interface 1202 shows a halo aroundpreviously seen and connected/added (e.g., corresponding user added tocontact list) drop digital elements. The halo is missing around thepreviously unseen/uncaught drop digital element. Bottom right cornershows a two-dimensional overhead view of a drop digital element near theviewing device of the viewing user. FIG. 12B shows example userinterface 1204 visualizing profile information associated with aselected drip digital element that has been selected in an augmentedreality environment. A user may choose to reject (e.g., by swiping up)or add (e.g., by swiping down) the user of the selected drop digitalelement to a contact list of the viewing user. If the user of theselected drop digital element is added to the contact list, the viewinguser is taken to the added user's public wall. FIG. 12C shows exampleuser interface 1206 showing a “public wall” of a user corresponding to aselected drop digital element. A viewing user is able to interact withthe “public wall” by obtaining/posting text, media/photos, and/orlocation information. In some embodiments, private messages not on the“public wall” are able to be shared between users via the drop digitalelement. FIG. 12D shows example user interface 1208 showing privatemessages between users. As shown, a photo and location information havebeen shared privately between users.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. A method for rendering a digital element,comprising: identifying the digital element located within a region neara device, wherein the digital element is located at a dynamicallyupdated location; determining that the digital element is to berendered; using a processor to generate a representation of the digitalelement in a rendered view of at least a portion of the region; andproviding content of the digital element upon receiving an indicationthat the digital element has been selected.
 2. The method of claim 1,wherein the dynamically updated location of the digital element is basedon a dynamic current location of a reference location device.
 3. Themethod of claim 2, wherein the reference location device includes atleast one of the following: a mobile device, a computer device, avehicle, a tag device, a beacon device, a location tracking device, asmart watch, or a digital collar.
 4. The method of claim 2, wherein thedynamic current location of the reference location device is determinedbased on an external device that detects the dynamic current location ofthe reference location device.
 5. The method of claim 2, wherein thedynamic current location of the reference location device is provided toa server by the reference location device.
 6. The method of claim 2,wherein the dynamically updated location of the digital element isdetermined based on an offset relative to the dynamic current locationof the reference location device.
 7. The method of claim 2, wherein thedynamically updated location of the digital element is at a latitude andlongitude of the dynamic current location of the reference locationdevice but is at a height that is different from an altitude of thedynamic current location of the reference location device.
 8. The methodof claim 1, wherein the dynamically updated location of the digitalelement is based on a filtered dynamic current location of a referencelocation device.
 9. The method of claim 1, wherein a relative locationof the representation of the digital element is indicated using auditorycues.
 10. The method of claim 9, wherein the auditory cues are generatedusing an inter-aural time difference and/or a head-related transferfunction.
 11. The method of claim 1, wherein generating therepresentation of the digital element in the rendered view includesdetermining a filtered location of an observing platform based at leastin part on the dynamically updated location in a manner that reduces arate of change of the dynamically updated location.
 12. The method ofclaim 11, wherein generating the representation of the digital elementin the rendered view includes calculating a directional heading value ofthe digital element based at least in part on a determined geographicallocation of the observing platform.
 13. The method of claim 1, whereinthe representation of the digital element is rendered in the renderedview that is able to be zoomed in and out in response to a userindication.
 14. The method of claim 1, further comprising providing anoverhead radar view of the dynamically updated location of the digitalelement with respect to the device.
 15. The method of claim 1, whereinthe digital element includes a user profile of a target user.
 16. Themethod of claim 15, wherein the user profile provides an observing useran interaction platform with the target user.
 17. The method of claim15, wherein the target user is added to a list of contacts of anobserving user in response to a user interface interaction associatedwith the representation of the digital element.
 18. The method of claim1, wherein generating the representation of the digital element in therendered view includes visually indicating whether the digital elementis one or more of the following: a digital element that is associatedwith a target user that is in a contact list of an observing user, or adigital element that has been previously selected.
 19. A system forrendering a digital element, comprising: a processor configured to:identify the digital element located within a region near a device,wherein the digital element is located at a dynamically updatedlocation; determine that the digital element is to be rendered; generatea representation of the digital element in a rendered view of at least aportion of the region; and provide content of the digital element uponreceiving an indication that the digital element has been selected; anda memory coupled with the processor, wherein the memory is configured toprovide the processor with instructions.
 20. A computer program productfor rendering a digital element, the computer program product beingembodied in a non-transitory computer readable storage medium andcomprising computer instructions for: identifying the digital elementlocated within a region near a device, wherein the digital element islocated at a dynamically updated location; determining that the digitalelement is to be rendered; generating a representation of the digitalelement in a rendered view of at least a portion of the region; andproviding content of the digital element upon receiving an indicationthat the digital element has been selected.